<?php
/**
 * Intreface DAO
 *
 * @author: http://phpdao.com
 * @date: 2013-05-22 23:18
 */
interface MovieDAO{

	/**
	 * Get Domain object by primry key
	 *
	 * @param String $id primary key
	 * @Return Movie 
	 */
	public function load($id);

	/**
	 * Get all records from table
	 */
	public function queryAll();
	
	/**
	 * Get all records from table ordered by field
	 * @Param $orderColumn column name
	 */
	public function queryAllOrderBy($orderColumn);
	
	/**
 	 * Delete record from table
 	 * @param movie primary key
 	 */
	public function delete($PKMovie);
	
	/**
 	 * Insert record to table
 	 *
 	 * @param Movie movie
 	 */
	public function insert($movie);
	
	/**
 	 * Update record in table
 	 *
 	 * @param Movie movie
 	 */
	public function update($movie);	

	/**
	 * Delete all rows
	 */
	public function clean();

	public function queryByFKGender($value);

	public function queryByName($value);

	public function queryByStakeholders($value);

	public function queryByDirector($value);

	public function queryByPicturePath($value);

	public function queryByVideoPath($value);

	public function queryByFormat($value);

	public function queryByYear($value);

	public function queryByRate($value);

	public function queryByPrice($value);

	public function queryByPriceRentals($value);

	public function queryByLanguages($value);

	public function queryBySubtitles($value);

	public function queryByDescription($value);

	public function queryByRuntime($value);

	public function queryByActive($value);

	public function queryByVisible($value);


//	public function deleteByFKGender($value);
//
//	public function deleteByName($value);
//
//	public function deleteByStakeholders($value);
//
//	public function deleteByDirector($value);
//
//	public function deleteByPicturePath($value);
//
//	public function deleteByVideoPath($value);
//
//	public function deleteByFormat($value);
//
//	public function deleteByYear($value);
//
//	public function deleteByRate($value);
//
//	public function deleteByPrice($value);
//
//	public function deleteByPriceRentals($value);
//
//	public function deleteByLanguages($value);
//
//	public function deleteBySubtitles($value);
//
//	public function deleteByDescription($value);
//
//	public function deleteByRuntime($value);
//
//	public function deleteByActive($value);
//
//	public function deleteByVisible($value);
	
}
?>